package LeetCode刷题;

import java.util.ArrayList;
import java.util.List;

/**
 * @program: Java_Study
 * @author: Xiaofan
 * @createTime: 2021-10-26 16:22
 * @description: Functions of this class is
 * 官方解法回溯：
 * 类似于全排列的
 * class Solution {
 *     public String[] permutation(String s) {
 *         char s1[]=s.toCharArray();
 *         int len=s1.length;
 *
 *         Arrays.sort(s1);//！！！！！！！！！！！！！！！！要先对s进行排序！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！
 *
 *         StringBuilder stb=new StringBuilder();
 *         List<String> list=new ArrayList();
 *         boolean vis[]=new boolean[len];
 *         dfs(0,len,s1,stb,vis,list);
 *
 *         len=list.size();//在这里的len要转换成最终答案的长度
 *
 *         String ans[]=new String[len];
 *         for(int i=0;i<len;i++){
 *             ans[i]=list.get(i);
 *         }
 *         return ans;
 *     }
 *     private void dfs(int index,int len,char s1[],StringBuilder stb,boolean vis[],List<String> list){
 *         if(index==len){
 *             list.add(stb.toString());
 *             return;
 *         }
 *         for(int i=0;i<len;i++){
 *             if(vis[i]||i>0&&!vis[i-1]&&s1[i-1]==s1[i]){!!!!!!!!!!这里一定要记得是上一个vis，上一个vis，即上一个被访问过！！！！！
 *                 continue;
 *             }
 *             vis[i]=true;
 *             stb.append(s1[i]);
 *             dfs(index+1,len,s1,stb,vis,list);
 *             stb.deleteCharAt(index);//使用上一次递归回退而来的索引下标
 *             vis[i]=false;
 *         }
 *     }
 * }
 **/
public class NoNoNo字符串的排列 {
    public static void main(String args[]) {
        String s="";


    }

    public static String[] permutation(String s) {
        char s1[]=s.toCharArray();
        int len=s1.length;
        return new String[]{};
    }
}